#ifndef	FOLLOW_PATH_H
#define FOLLOW_PATH_H

#include "Seek.h"
#include "Path.h"
#include "Agent.h"

namespace Engine
{
	namespace SteeringBehaviourTypes
	{
		const unsigned int FOLLOW_PATH = Hash("FollowPath");
	}

	class FollowPath : public Seek
	{
		private:
			Path* m_path;

			Vec3 m_pointOnPath;
			float m_distOffset;

			Agent* m_actualTarget;

		public:
			FollowPath();

			void SetTarget(Agent* t);
			void Update(SteeringOutput* output);
			const char* GetTypeName() const {return "FollowPath";}
			unsigned int GetHash() const {return SteeringBehaviourTypes::FOLLOW_PATH;}

			void SetDistOffset(float distOffset);

			void SetPath(Path* path);

			~FollowPath();
	};
}

#endif